Application programs that are executed by a personal computer are typically stored in the conventional memory region of the computer's memory space. Since the designers of the programs expect these programs to be stored in the conventional memory region, they have been designed to be executed from this region. For this reason, some of these programs are not capable of being operated from the lowest available memory region of the computer memory.
As an example, commercially available application programs designed to be executed by a personal computer are typically stored in a manner to minimize the amount of non-volatile media necessary to contain the application program. One manner of storing these application programs to minimize the amount of fixed storage medium necessary to contain the application program is to operate upon the application program with a storage maximization program. One such storage maximization program, referred to as EXEPACK, converts the application program from one form to another equivalent form, wherein the equivalent form takes less storage space. However, in certain computer configurations, a program that has been EXEPACKed does not operate properly if it is loaded in the lowest available region of the computer's memory space.
As another example, programs that use the Rational DOS Extender do not operate properly when they are loaded in the lowest available region of the computer's memory space. Accordingly, it is desirable to provide a method for loading programs from a fixed storage medium to the computer's memory space wherein the programs can be loaded in substantially any region of the computer's memory space.
Along these lines, many programs rely upon a version number of the operating system to determine whether the program is compatible with the operating system, i.e., whether the program is capable of being properly executed using the operating system of the personal computer. However, a program that was written prior to the existence of a new operating system, or prior to the existence of a new version of an old operating system, may not recognize that it is compatible with the new or revised operating system by the version number. Accordingly, to be able to run the program with the new operating system, the program must be revised so that it will recognize the new operating system. Accordingly, it is desirable to provide a method for loading a program into computer memory and revising a program to indicate that it is operable with the operating system associated with the computer memory.